Telegram Group & Telegram Channel
🧙‍♂️ Атрибуты в современном C++

В C++11 и новее появились атрибуты — механизм, о котором многие забывают. Атрибуты позволяют передавать дополнительную информацию компилятору, не меняя семантику кода.

[[nodiscard]] int getValue() { return 42; }

void test() {
getValue(); // Предупреждение: результат функции не используется
}

class [[deprecated("Используйте новый API")]] OldClass {};

[[noreturn]] void throwError() { throw std::runtime_error("Ошибка"); }

// C++20: говорит компилятору, что код с [[likely]] будет выполняться чаще
void process(int* data) {
if (data) [[likely]] {
process_data(data);
} else [[unlikely]] {
handle_null();
}
}

Другие полезные атрибуты: [[maybe_unused]], [[fallthrough]], [[no_unique_address]] (C++20). Они делают код понятнее и помогают избежать ошибок😸

Библиотека C/C++ разработчика #буст



tg-me.com/cppproglib/5658
Create:
Last Update:

🧙‍♂️ Атрибуты в современном C++

В C++11 и новее появились атрибуты — механизм, о котором многие забывают. Атрибуты позволяют передавать дополнительную информацию компилятору, не меняя семантику кода.

[[nodiscard]] int getValue() { return 42; }

void test() {
getValue(); // Предупреждение: результат функции не используется
}

class [[deprecated("Используйте новый API")]] OldClass {};

[[noreturn]] void throwError() { throw std::runtime_error("Ошибка"); }

// C++20: говорит компилятору, что код с [[likely]] будет выполняться чаще
void process(int* data) {
if (data) [[likely]] {
process_data(data);
} else [[unlikely]] {
handle_null();
}
}

Другие полезные атрибуты: [[maybe_unused]], [[fallthrough]], [[no_unique_address]] (C++20). Они делают код понятнее и помогают избежать ошибок😸

Библиотека C/C++ разработчика #буст

BY Библиотека C/C++ разработчика | cpp, boost, qt


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/cppproglib/5658

View MORE
Open in Telegram


Библиотека C C разработчика | cpp boost qt Telegram | DID YOU KNOW?

Date: |

The S&P 500 slumped 1.8% on Monday and Tuesday, thanks to China Evergrande, the Chinese property company that looks like it is ready to default on its more-than $300 billion in debt. Cries of the next Lehman Brothers—or maybe the next Silverado?—echoed through the canyons of Wall Street as investors prepared for the worst.

Among the actives, Ascendas REIT sank 0.64 percent, while CapitaLand Integrated Commercial Trust plummeted 1.42 percent, City Developments plunged 1.12 percent, Dairy Farm International tumbled 0.86 percent, DBS Group skidded 0.68 percent, Genting Singapore retreated 0.67 percent, Hongkong Land climbed 1.30 percent, Mapletree Commercial Trust lost 0.47 percent, Mapletree Logistics Trust tanked 0.95 percent, Oversea-Chinese Banking Corporation dropped 0.61 percent, SATS rose 0.24 percent, SembCorp Industries shed 0.54 percent, Singapore Airlines surrendered 0.79 percent, Singapore Exchange slid 0.30 percent, Singapore Press Holdings declined 1.03 percent, Singapore Technologies Engineering dipped 0.26 percent, SingTel advanced 0.81 percent, United Overseas Bank fell 0.39 percent, Wilmar International eased 0.24 percent, Yangzijiang Shipbuilding jumped 1.42 percent and Keppel Corp, Thai Beverage, CapitaLand and Comfort DelGro were unchanged.

Библиотека C C разработчика | cpp boost qt from de


Telegram Библиотека C/C++ разработчика | cpp, boost, qt
FROM USA